Процедуры и функции.

 

Пример:

Dim i, b As Integer
Private Sub Command1_Click()
     For i = 1 To 100 Step 4
         If (i Mod 3) = 0 Then
              умножаем_на_2
        If (i Mod 5) = 0 Then
              делим_на_5
       End If
       End If
    Next i
End Sub
Private Sub умножаем_на_2()
        b = i * 2
        Print b
End Sub

Private Sub делим_на_5()
         b = i / 5
         Print b
End Sub

У нас есть 2 процедуры. Каждая из этих процедур представляет собой цепочку операторов, из которых состоит упомянутый фрагмент.

 Сверху цепочки вы пишете заголовок процедуры (Private Sub...), а снизу - конечную строчку процедуры (End Sub).

Все операторы, из которых состоит процедура, кроме заголовка и конечной строки, будем называть телом процедуры.

 Как только эти процедуры написаны, компьютер "узнает", что такое  Умножаем_на_2  и  Делим_на_5. Поэтому в осталь­ных процедурах слова

Умножаем_на_2  и  Делим_на_5 используются, как настоящие операторы, и выполняются, как настоящие операторы. Суть их выполнения в том,

 что когда Visual Basic во время выполнения программы натыкается на оператор Умножаем_на_2   он ищет в программе процедуру с именем

Умножаем_на_2   и выполняет тело этой процедуры, после чего возвращается к выполнению программы.

Этот процесс называется вызовом процедуры или обращением к процедуре.

Процедуры очень удобны для объемных программ, где необходимо выполнять повторяющиеся действия.

Взаимодействие процедур в программе

Вызываемая процедура сама в процессе своей работы может вы­звать какую-нибудь другую процедуру.

И так далее. Потренируемся: Определите без компьютера, что напечатает программа:

Private Sub Command1_Click()

  Print 1; :   A :   Print 2; :   В :   Print 3

End Sub

Private Sub A()

        Print 4

 End Sub

Private Sub B()

         Print 5; :   С :   Print 6

End Sub

Private Sub C()

    Print 7                                                                                

End Sub

Операторы Stop, End и Exit Sub

До сих пор мы писали процедуры, которые выполняли свою работу до конца и заканчивали ее только на операторе End Sub,

не раньше. Существуют ли операторы, которые, подобно операторам выхода из цикла Exit Do и Exit For, заставляют

компьютер покинуть процедуру, не доходя до ее конца? Такие операторы существуют. Оператор End заставляет

Visual Basic завершить работу не только процедуры, а всего проекта, не доходя до конечного End Sub. Оператор Exit Sub

 не такой решительный, как End. Он не выбрасы­вает Visual Basic из режима работы, а просто заставляет компьютер выйти

 из процедуры, в которой он выполнился. Если он выполнился в вызываемой процедуре, то Visual Basic возвращается в процедуру,

ее вызвавшую. Если он выполнился в процедуре обработки события, то Visual Basic просто завершает работу этой процедуры.

 

Задать вопрос.

   

Практическое заданиеТЕСТ

 

 

на главную лицея
Hosted by uCoz